문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 유니티(게임 엔진) (문단 편집) ==== [[쓰레기 수집|GC]] 스파이크 문제 ==== 유니티 엔진이 스크립팅용 언어로 [[C\#]]을 사용하는 만큼 실제 실행과정에서는 .NET 런타임의 쓰레기 수집기가 메모리관리를 담당하고 있으며 유니티 측에서는 이에 대해서 가상머신의 쓰레기 수집기가 담당하는 관리 영역과 쓰레기 수집기가 담당하지 않는 비관리 영역을 구분하고 있다. 가비지 컬렉터가 메모리 관리를 하기 때문에 개발하는 개발자들은 메모리 관리에 덜 신경써도 되지만 가비지 컬렉션 자체가 상당한 자원이 드는 작업이라 관리가 필요한 메모리 영역이 늘어날수록 가비지 컬렉션이 일어나는 와중에 발생한 성능 저하로 인한 GC Spike등의 성능 문제가 자주 발생하며 이와 관련된 대표적인 게임이 [[Escape from Tarkov]]다. 사실 유니티는 일단은 가비지 컬렉션 관련 기능을 수동으로 제어하거나 심지어는 C/C++로 이루어진 코어 부분의 메모리 영역에 접근하는 방법을 만들어 둬 이를 작정하고 이용해 최적화 할경우 GC Spike등의 문제를 최소화 할수 있다. 문제는 유니티 엔진을 쓰는 회사들 규모가 상대적으로 작은 편이라 그렇게 까지 최적화를 할 필요성을 못느끼는 개발자들이 많기 때문에 단순 GC Spike 뿐만이 아니라 유니티에서도 메모리 누수가 빈번히 발생하는 게임들을 볼수있다.[* GC가 동작하는 방법때문이기도 하다. C#의 GC는 접근 불가능한 객체에 대해 검사해 사용 권한을 회수하는 방식이라 개발자가 객체관리를 제대로 안하면 GC도 객체가 실제로는 쓰지않는 객체가 늘어나도 사용할수 있다고 보고 회수하지 않는다.] 핵심은 유니티가 GC 에 의존한다기 보다는 제대로 메모리를 관리하지 않고 GC에게 일임해버리는 개발자들이 문제인 셈.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기